/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package src.j2ee.compumake.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import src.j2ee.compumake.dominio.TipoMemoria;

/************************************************************************
 **                                                                    **
 ** Nombre: DAOTipoMemoriaTarjetaMadre.java                            **
 ** Version: v1.0.0                                                    **
 ** Autor: amado.cante                                                 **
 ** Creado: 25/04/2013                                                 **
 ** Modificado:                                                        **
 ** Diagrama:                                                          **
 ** Caso de uso:                                                       **
 **                                                                    **
 ***********************************************************************/
public class DAOTipoMemoriaTarjetaMadre {
    private static final String TABLA_TIPO_TARJETA = "TiposMemoriaTarjetaMadre";
    private static final String ID_TARJETA_MADRE = "idTarjetaMadre";
    private static final String ID_TIPO_MEMORIA = "idTipoMemoria";
    private Connection conexion;
    private AccesoBaseDatos acceso = new AccesoBaseDatos();
    
    public DAOTipoMemoriaTarjetaMadre(){
        this.conexion = this.acceso.abrirConexion();
    }
    
    public ArrayList<TipoMemoria> obtenerTiposMemoriaTarjetaMadre(int idTarjetaMadre){
        ArrayList<TipoMemoria> tipos = new ArrayList<>();
        try{
            Statement sentencia = acceso.crearSentenciaBD(conexion);
            String query = "SELECT "+ID_TIPO_MEMORIA+" FROM "+TABLA_TIPO_TARJETA
                    +" WHERE "+ID_TARJETA_MADRE+"='"+idTarjetaMadre+"';";
            ResultSet resultado = sentencia.executeQuery(query);
            DAOTipoMemoria daoTipoMemoria = new DAOTipoMemoria();
            while(resultado.next()){
                int idTipoMemoria = resultado.getInt(1);
                TipoMemoria tm = daoTipoMemoria.buscaTipoMemoria(idTipoMemoria);
                if(tm!=null){
                    tipos.add(tm);
                }
            }
            return tipos;
        }catch(SQLException ex){
            return tipos;
        }
    }
    
    public ArrayList<TipoMemoria> registrarTipoMemoria(ArrayList<TipoMemoria> tipos, int idTarjetaMadre){
        ArrayList<TipoMemoria> registrar = tipos;
        ArrayList<TipoMemoria> registrados = new ArrayList<>();
        try{
            Statement sentencia = acceso.crearSentenciaBD(conexion);
            for(int i=0;i<registrar.size();i++){
                String query = "INSERT INTO "+TABLA_TIPO_TARJETA+"("+ID_TARJETA_MADRE
                    +","+ID_TIPO_MEMORIA+") VALUES('"+idTarjetaMadre+"','"
                    +registrar.get(i).getIdTipo()+"');";
                int afectado = sentencia.executeUpdate(query);
                if(afectado>0){
                    registrados.add(registrar.get(i));
                }
            }
        }catch(SQLException ex){
            return registrados;
        }
        return registrados;
    }
    
}
